home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / math / Headers / Plane.h < prev    next >
Text File  |  1999-07-13  |  1KB  |  37 lines

  1.  
  2. #pragma once
  3.  
  4. #include "V3.h"
  5.  
  6.  
  7. class Plane : public V3 {
  8.  
  9.     public:    
  10.         //    Returns 1 if inPt is on same side of this plane as infinity
  11.         //    Returns 0 if inPt is on this plane
  12.         //    Returns -1 if inPt is on the same side as (0,0,0)
  13.         //int                    OnPlane( const Vector& inPt );
  14.         
  15.         //    Returns left hand side of equation.  ie, the closer it is to zero, the closer
  16.         //    inPt is to being on this plane.  It's:  (this.Dot( inPt ) - mD)
  17.         PFloat                CheckZero( const V3& inPt ) const;
  18.         
  19.         //    Assigns this plane so that all three pts lie on this plane
  20.         void                set( const V3& inPt1, const V3& inPt2, const V3& inPt3 );
  21.         
  22.         //    Assigns this plane with a normal parellel to inNormal and so that it passes thru the pt: inD * unit(inNormal)
  23.         void                set( const V3& inNormal, PFloat inD );
  24.         void                set( PFloat inX, PFloat inY, PFloat inZ, PFloat inD );
  25.  
  26.         // Find intersecting line of this plane and another plane
  27.         void                intersect( const Plane& inPl, V3& outDir, V3& outPos );
  28.  
  29.  
  30.  
  31.         // Eq: mX x + mY y + mZ z = mD
  32.         // Convention: mD is *always*  positive
  33.         PFloat    mD;
  34. };
  35.  
  36.  
  37.